# 使用官方的Go镜像作为基础镜像
FROM golang:1.17 AS builder

# 设置工作目录
WORKDIR /app

# 将go.mod和go.sum复制到工作目录并下载依赖
COPY go.mod go.sum ./
RUN go mod download

# 将项目代码复制到工作目录
COPY . .

# 构建可执行文件
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o todolist-backend .

# 使用轻量级的alpine镜像作为最终的运行镜像
FROM alpine:latest

# 设置工作目录
WORKDIR /root/

# 从构建阶段复制可执行文件到当前镜像
COPY --from=builder /app/todolist-backend .

# 暴露应用程序的端口
EXPOSE 8080

# 运行应用程序
CMD ["./todolist-backend"]
